package com.sibu.yx.promotion.admin.web.support.quartz;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CustomScheduled {
    /**
     * 此不为""时，startDelay、repeatInterval有效
     * cronExpression
     * 执行时间表达式
     */
    String cron() default "";

    /**
     * 启动多少毫秒后执行
     *
     */
    long startDelay() default 0;
    /**
     *
     * 每隔多少毫秒
     *
     */
    long repeatInterval() default -1;

    /**
     * 销毁方法名--destroy
     */
    String destroyMethod() default "";

    /**
     * 任务并发执行默认关闭
     * Quartz定时任务默认都是并发执行的，不会等待上一次任务执行完毕，
     * 只要间隔时间到就会新创建线程执行，容易导致线程池（默认10个线程）耗尽，所有任务都在等待线程
     */
    boolean concurrent() default false;
}


